Para mostrar la tabla ASCII haremos un bucle con un for. La parte de la tabla ASCII que nos interesa contiene los dígitos, y letras mayúsculas y minúsculas. Todos ellos estan dentro de los primero 128 valores ASCII. Tal como sale en muchas imágenes que se pueden encontrar en Google, se suelen poner los valores por columnas, donde cada columna son 32 valores. La primera se suele omitir, ya que los primeros 32 caracteres precisamente de la tabla ASCII (del 0 al 31) son no-imprimibles es decir que si los intentamos mostrar por pantalla no sale nada.
Es decir, se trata de mostrar 3 columnas como las siguientes:
32 ' ' 64 '@' 96 '`' 33 '!' 65 'A' 97 'a' 34 '"' 66 'B' 98 'b' 35 '#' 67 'C' 99 'c' ...
Para hacer esto, primero haremos un bucle de 32 iteraciones que muestra la primera columna y luego mostraremos las dos que faltan. El programa que muesta la primera columna es el siguiente (sin los #includes):
int main() { int i; for (i = 32; i < 64; i++) { cout << i << " '" << char(i) << "'" << endl; } }
El bucle recorre del 32 al 63 (ya que la condición i < 64 es falsa para 64 y se sale del bucle). Por otro lado, en la instrucción cout se muestra el entero tal cual y luego se convierte a caracter con char(i). Las comillas simples se consiguen poniéndolas dentro de un literal de tipo string, a un lado y a otro.
Con el programa así, no es difícil conseguir las otras columnas. Hay que conseguir que en la primera línea se muestren los valores 32, 64 y 96, luego en la siguiente 33, 65 y 97, etc.
Esto lo podemos conseguir sumando 32 y 64 a la i ya que es la distancia que hay entre las columnas:
for (i = 32; i < 64; i++) { cout << i << " '" << char(i ) << "' "; cout << i+32 << " '" << char(i+32) << "' "; cout << i+64 << " '" << char(i+64) << "'" << endl; }
Se han alineado las instrucciones para que se aprecie mejor que son la misma pero solamente cambiando los valores de i. Asimismo, el endl se pone solo en la última, porque si no habría 3 líneas y no una como queremos.
En preparación